home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / rexx / createfax.avm < prev    next >
Text File  |  1994-06-24  |  6KB  |  249 lines

  1. /* TITLE: avm:rexx/createfax.avm */
  2. parse arg faxfilename
  3. call addlib("rexxsupport.library", 0, -30, 0)
  4. call initLogEntry(); handle = makeUniqueFile()
  5. log.fileName = faxfilename; log.type = 'Fax'; log.returnRetry = 3
  6. log.returnInterval = 5; log.altFileName = voiceFile(mailbox, 'Introduction')
  7. log.returnSendFunc = 'DefaultSender'; log.origMailbox = 'Anonymous'
  8. call saveLogEntry('Outgoing', handle)
  9. address command 'run <nil: >nil: avm:schedulerview' 'Outgoing' handle
  10.  
  11. error:
  12. exit
  13.  
  14. exit
  15.  
  16. mailboxDir: procedure
  17.     parse arg mailbox
  18.  
  19.     return 'avm:' || mailbox || '/'
  20.  
  21. logFile: procedure
  22.     parse arg mailbox, magiccookie
  23.  
  24.     return 'avm:' || mailbox || '/logs/' || magiccookie
  25.  
  26. voiceFile: procedure
  27.     parse arg mailbox, magiccookie
  28.  
  29.         if (verify(magiccookie, '/:', 'M') = 0) then
  30.           return 'avm:' || mailbox || '/voices/' || magiccookie
  31.         else
  32.           return magiccookie
  33.  
  34. makeUniqueFile: procedure
  35.     if arg() ~= 0 then do
  36.         rc = "makeUniqueFile: bad args"
  37.         signal error
  38.     end
  39.     return address() || '.' || date('i') || '.' || time('s') || '.' || random(1, 999, time('s'))
  40.  
  41. convertToDate: procedure
  42.     if arg() ~= 1 then do
  43.         rc = "convertToDate: bad args"
  44.         signal error
  45.     end
  46.     parse arg timeInC
  47.  
  48.     actualTime = (timeInC - (2922)*86400) // (86400)
  49.     actualDate = (timeInC - actualTime - 2922*86400) % 86400
  50.  
  51.     return actualDate /* returning it in 'internal' format */
  52.  
  53. convertToTime: procedure
  54.     if arg() ~= 1 then do
  55.         rc = "convertToTime: bad args"
  56.         signal error
  57.     end
  58.     parse arg timeInC
  59.     
  60.     actualTime = (timeInC - (2922)*86400) // (86400)
  61.  
  62.     return actualTime
  63.  
  64. cTime: procedure
  65.     /* 2922 = 8*365 + 2 */
  66.     /* 86400 = 24*60*60 */
  67.     return (date('i')+2922)*86400 + time('s')
  68.  
  69. /* this returns a handle that you must use after initializing log. */
  70. initLogEntry: procedure expose log.
  71.     if arg() ~= 0 then do
  72.         rc = "initLogEntry: bad args"
  73.         signal error
  74.     end
  75.     
  76.     drop log.
  77.         log. = ''
  78.  
  79.         acidname = getclip(address() || 'CIDNAME')
  80.         acidnumber = getclip(address() || 'CIDNUMBER')
  81.  
  82.     /* 2922 = 8*365 + 2 */
  83.     /* 86400 = 24*60*60 */
  84.     log.time = (date('i')+2922)*86400 + time('s')
  85.     log.cidname = acidname
  86.     log.cidnumber = acidnumber
  87.  
  88.     return
  89.  
  90. loadLogEntry: procedure expose log.
  91.     if arg() ~= 2 then do
  92.         rc = "loadLogEntry: bad args"
  93.         signal error
  94.     end
  95.     parse arg mailbox, handle
  96.  
  97.         drop log.
  98.         log. = ''
  99.  
  100.     if ~exists(mailboxDir(mailbox)) then do
  101.         call showDebugger('Dir=' || mailboxDir(mailbox) 'does not exist')
  102.         return
  103.     end
  104.  
  105.     opened = open(handle, logFile(mailbox, handle), 'r')
  106.         if opened then do
  107.         call showDebugger('Loading entry' logFile(mailbox, handle))
  108.         do while ~eof(handle)
  109.             line = readln(handle)
  110.             parse upper var line variable '=' value
  111.             log.variable = value
  112.         end
  113.         call close(handle)
  114.     end; else call showDebugger('Could not load' logFile(mailbox, handle))
  115.     return
  116.  
  117. /* pass a handle here */
  118. saveLogEntry: procedure expose log.
  119.     if arg() ~= 2 then do
  120.         rc = "saveLogEntry: bad args"
  121.         signal error
  122.     end
  123.     parse arg mailbox, handle
  124.  
  125.     if ~exists(mailboxDir(mailbox)) then do
  126.         call showDebugger('Dir=' || mailboxDir(mailbox) 'does not exist')
  127.         return
  128.     end
  129.  
  130.     opened = open(handle, logFile(mailbox, handle), 'w')
  131.  
  132.     if opened then do
  133.         call showDebugger('Saving entry' logFile(mailbox, handle))
  134.         call writeln(handle, 'TYPE=' || log.type)
  135.         call writeln(handle, 'TIME=' || log.time)
  136.         call writeln(handle, 'LENGTH=' || log.length)
  137.  
  138.         call writeln(handle, 'ORIGMAILBOX=' || log.origmailbox)
  139.  
  140.         call writeln(handle, 'CIDNAME=' || log.cidname)
  141.         call writeln(handle, 'CIDNUMBER=' || log.cidnumber)
  142.  
  143.         call writeln(handle, 'COMMENT=' || log.comment)
  144.  
  145.         call writeln(handle, 'FILENAME=' || log.filename)
  146.         call writeln(handle, 'ALTFILENAME=' || log.altfilename)
  147.  
  148.         call writeln(handle, 'RETURNNUMBER=' || log.returnnumber)
  149.         call writeln(handle, 'RETURNSENDFUNC=' || log.returnsendfunc)
  150.         call writeln(handle, 'RETURNSTATUS=' || log.returnstatus)
  151.  
  152.         call writeln(handle, 'RETURNRETRY=' || log.returnretry)
  153.         call writeln(handle, 'RETURNINTERVAL=' || log.returninterval)
  154.  
  155.         call close(handle)
  156.         address rexx 'broadcast' 'addtomailbox' mailbox handle
  157.     end; else call showDebugger('Could not save' logFile(mailbox, handle))
  158.  
  159.     return
  160.  
  161. /* pass a handle here */
  162. updateLogEntry: procedure expose log.
  163.     if arg() ~= 2 then do
  164.         rc = "updateLogEntry: bad args"
  165.         signal error
  166.     end
  167.     parse arg mailbox, handle
  168.  
  169.     if ~exists(mailboxDir(mailbox)) then do
  170.         call showDebugger('Dir=' || mailboxDir(mailbox) 'does not exist')
  171.         return
  172.     end
  173.  
  174.     if ~exists(logFile(mailbox, handle)) then do
  175.         call showDebugger('Unable to update non-existent' logFile(mailbox, handle))
  176.         return
  177.     end
  178.     opened = open(handle, logFile(mailbox, handle), 'w')
  179.  
  180.     if opened then do
  181.         call showDebugger('Updating entry' logFile(mailbox, handle))
  182.         call writeln(handle, 'TYPE=' || log.type)
  183.         call writeln(handle, 'TIME=' || log.time)
  184.         call writeln(handle, 'LENGTH=' || log.length)
  185.  
  186.         call writeln(handle, 'ORIGMAILBOX=' || log.origmailbox)
  187.  
  188.         call writeln(handle, 'CIDNAME=' || log.cidname)
  189.         call writeln(handle, 'CIDNUMBER=' || log.cidnumber)
  190.  
  191.         call writeln(handle, 'COMMENT=' || log.comment)
  192.  
  193.         call writeln(handle, 'FILENAME=' || log.filename)
  194.         call writeln(handle, 'ALTFILENAME=' || log.altfilename)
  195.  
  196.         call writeln(handle, 'RETURNNUMBER=' || log.returnnumber)
  197.         call writeln(handle, 'RETURNSENDFUNC=' || log.returnsendfunc)
  198.         call writeln(handle, 'RETURNSTATUS=' || log.returnstatus)
  199.  
  200.         call writeln(handle, 'RETURNRETRY=' || log.returnretry)
  201.         call writeln(handle, 'RETURNINTERVAL=' || log.returninterval)
  202.  
  203.         call close(handle)
  204.         address rexx 'broadcast' 'refreshmailboxentry' mailbox handle
  205.     end; else call showDebugger('Could not update' logFile(mailbox, handle))
  206.  
  207.     return
  208.  
  209.  
  210.  
  211. showDebugger: procedure
  212.     if arg() ~= 1 then do
  213.         say "showDebugger: ERROR"
  214.         exit 20
  215.     end
  216.  
  217.     parse arg debuggerInfo
  218.     
  219.     firstLine = sourceline(1)
  220.     parse var firstLine '/*' 'TITLE:' title '*/'
  221.     if showlist('p', 'AVMLOGGER') then
  222.         address 'AVMLOGGER' 'add' title ':' debuggerInfo
  223.     else
  224.         say title ':' debuggerInfo
  225.  
  226.     return 
  227.  
  228. /*-----------------------------------------------------------------------*/
  229. /*                         signal processing                             */
  230.  
  231. arexxerror:
  232. error:
  233.     call showDebugger("Error" rc "at line" sigl)
  234.     exit 20
  235.  
  236. break_c:
  237. halt:
  238.     call showDebugger("Halt/Break_C at line" sigl)
  239.     exit 20
  240.  
  241. novalue:
  242.     call showDebugger("No value at line" sigl)
  243.     exit 20
  244.  
  245. syntax:
  246.     call showDebugger("Syntax error" rc "at line" sigl)
  247.     exit 20
  248.  
  249.